﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BDCS.BLL;
using BDCS.Model;

namespace BDCS.UI
{
    public partial class AddSubAttributes : Form
    {
        #region 成员字段
        private BDCS.BLL.T_SubBuildAttributes bllSubBuildAttribute;
        private BDCS.BLL.T_SubAttributes bllSubAttribute;
        private BDCS.Model.T_SubAttributes modelSubAttribute;
        private List<Model.T_SubAttributes> listSubAttributes;
        private BDCS.BLL.T_SubBuildTyppes bllSubBuildType;
        private DataSet dataSet;
        private bool isExist;
        private int index;
        private int sbtid;
        #endregion
        #region 构造函数
        public AddSubAttributes()
        {
            InitializeComponent();
        }
        #endregion
        #region 方法事件
        private void AddSubAttributes_Load(object sender, EventArgs e)
        {
            index = 0;
            CmbSubBuildTypeDataBinding();
            CmbSubBuildAttributeDataBinding(sbtid);
        }
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtSubAttributeContent.Text.Trim()))
            {
                MessageBox.Show("输入的子类建筑属性值为空，请重新输入！");
            }
            else
            {
                if (txtSubAttributeContent.Text.Length > 100)
                {
                    MessageBox.Show("输入的子类建筑属性值长度大于100，请重新输入!");
                }
                else
                {
                    modelSubAttribute = new Model.T_SubAttributes();
                    modelSubAttribute.SBAID = Convert.ToInt32(cmbSubBuildAttributeName.SelectedValue);
                    modelSubAttribute.SAContent = txtSubAttributeContent.Text.Trim();
                    modelSubAttribute.SADescribe = txtSubAttributeContentDescribe.Text.Trim();
                    if (!CheckAttributeIsExist(modelSubAttribute))
                    {
                        bllSubAttribute = new BLL.T_SubAttributes();
                        if (bllSubAttribute.Add(modelSubAttribute) != 0)
                        {
                            //BDCS.Common.TreeViewState.IsChangedAttribute = true;
                            MessageBox.Show("新增子类属性值成功！");
                        }
                        else
                        {
                            MessageBox.Show("新增子类属性值失败，请重新输入！");
                            txtSubAttributeContent.Text = string.Empty;
                        }
                    }
                    else
                    {
                        MessageBox.Show("新增子类属性值已经存在，请重新输入！");
                        txtSubAttributeContent.Text = string.Empty;
                    }
                }
            }
        }
        private void btnCancel_Click(object sender, EventArgs e)
        {
            txtSubAttributeContent.Text = string.Empty;
            txtSubAttributeContentDescribe.Text = string.Empty;
        }
        #endregion
        #region 方法成员

        private void CmbSubBuildTypeDataBinding()
        {
            dataSet = new DataSet();
            bllSubBuildType = new BLL.T_SubBuildTyppes();
            dataSet = bllSubBuildType.GetAllList();
            cmbSubBuild.DataSource = dataSet.Tables[0];
            cmbSubBuild.DisplayMember = dataSet.Tables[0].Columns["SBTName"].ToString();
            cmbSubBuild.ValueMember = dataSet.Tables[0].Columns["SBTID"].ToString();
        }
        private void CmbSubBuildAttributeDataBinding(int sbtid)
        {
            
            dataSet = new DataSet();
            bllSubBuildAttribute = new BLL.T_SubBuildAttributes();
            dataSet = bllSubBuildAttribute.GetList("SBTID=" + "'" + sbtid + "'");
            cmbSubBuildAttributeName.DataSource = dataSet.Tables[0];
            cmbSubBuildAttributeName.DisplayMember = dataSet.Tables[0].Columns["SBAContent"].ToString();
            cmbSubBuildAttributeName.ValueMember = dataSet.Tables[0].Columns["SBAID"].ToString();
        }
        private bool CheckAttributeIsExist(Model.T_SubAttributes modelBuildAttribute)
        {
            listSubAttributes = new List<Model.T_SubAttributes>();
            bllSubAttribute = new BLL.T_SubAttributes();
            listSubAttributes = bllSubAttribute.GetModelList("SBAID=" + "'" + modelBuildAttribute.SBAID.ToString() + "'");
            if (listSubAttributes.Count != 0)
            {
                foreach (Model.T_SubAttributes SubAttribute in listSubAttributes)
                {
                    if (modelBuildAttribute.SBAID == SubAttribute.SBAID && modelBuildAttribute.SAContent == SubAttribute.SAContent)
                    {
                        isExist = true;
                    }
                    else
                    {
                        isExist = false;
                    }
                }
            }
            else
            {
                isExist = false;
            }
            return isExist;
        }
        #endregion
        private void cmbSubBuild_SelectedIndexChanged(object sender, EventArgs e)
        {
            index++;
            if (index == 1 || index == 2)
            {
                System.Data.DataRowView drv = (DataRowView)cmbSubBuild.SelectedValue;
                sbtid = Convert.ToInt32(drv.Row["SBTID"]);
            }
            else
            {
                sbtid = Convert.ToInt32(cmbSubBuild.SelectedValue);
                CmbSubBuildAttributeDataBinding(sbtid);
            }
        }
    }
}
